Functions dealing with the MQTT protocol exchanges. More...
#include <stdlib.h>#include <string.h>#include "MQTTProtocolClient.h"#include "MQTTPersistence.h"#include "SocketBuffer.h"#include "StackTrace.h"#include "Heap.h"
Functions | |
| static void | MQTTProtocol_storeQoS0 (Clients *pubclient, Publish *publish) |
| static int | MQTTProtocol_startPublishCommon (Clients *pubclient, Publish *publish, int qos, int retained) |
| Utility function to start a new publish exchange. | |
| static void | MQTTProtocol_retries (time_t now, Clients *client, int regardless) |
| MQTT retry processing per client. | |
| int | messageIDCompare (void *a, void *b) |
| List callback function for comparing Message structures by message id. | |
| int | MQTTProtocol_assignMsgId (Clients *client) |
| Assign a new message id for a client. | |
| int | MQTTProtocol_startPublish (Clients *pubclient, Publish *publish, int qos, int retained, Messages **mm) |
| Start a new publish exchange. | |
| Messages * | MQTTProtocol_createMessage (Publish *publish, Messages **mm, int qos, int retained) |
| Copy and store message data for retries. | |
| Publications * | MQTTProtocol_storePublication (Publish *publish, int *len) |
| Store message data for possible retry. | |
| void | MQTTProtocol_removePublication (Publications *p) |
| Remove stored message data. | |
| int | MQTTProtocol_handlePublishes (void *pack, int sock) |
| Process an incoming publish packet for a socket. | |
| int | MQTTProtocol_handlePubacks (void *pack, int sock) |
| Process an incoming puback packet for a socket. | |
| int | MQTTProtocol_handlePubrecs (void *pack, int sock) |
| Process an incoming pubrec packet for a socket. | |
| int | MQTTProtocol_handlePubrels (void *pack, int sock) |
| Process an incoming pubrel packet for a socket. | |
| int | MQTTProtocol_handlePubcomps (void *pack, int sock) |
| Process an incoming pubcomp packet for a socket. | |
| void | MQTTProtocol_keepalive (time_t now) |
| MQTT protocol keepAlive processing. | |
| void | MQTTProtocol_retry (time_t now, int doRetry, int regardless) |
| MQTT retry protocol and socket pending writes processing. | |
| void | MQTTProtocol_freeClient (Clients *client) |
| Free a client structure. | |
| void | MQTTProtocol_emptyMessageList (List *msgList) |
| Empty a message list, leaving it able to accept new messages. | |
| void | MQTTProtocol_freeMessageList (List *msgList) |
| Empty and free up all storage used by a message list. | |
| char * | MQTTStrncpy (char *dest, const char *src, size_t dest_size) |
| Copy no more than dest_size -1 characters from the string pointed to by src to the array pointed to by dest. | |
| char * | MQTTStrdup (const char *src) |
| Duplicate a string, safely, allocating space on the heap. | |
Variables | |
| MQTTProtocol | state |
| ClientStates * | bstate |
Functions dealing with the MQTT protocol exchanges.
Some other related functions are in the MQTTProtocolOut module
| int messageIDCompare | ( | void * | a, | |
| void * | b | |||
| ) |
List callback function for comparing Message structures by message id.
| a | first integer value | |
| b | second integer value |
| int MQTTProtocol_assignMsgId | ( | Clients * | client | ) |
Assign a new message id for a client.
Make sure it isn't already being used and does not exceed the maximum.
| client | a client structure |

Copy and store message data for retries.
| publish | the publication data | |
| mm | - pointer to the message data to store | |
| qos | the MQTT QoS to use | |
| retained | boolean - whether to set the MQTT retained flag |

| void MQTTProtocol_emptyMessageList | ( | List * | msgList | ) |
Empty a message list, leaving it able to accept new messages.
| msgList | the message list to empty |

| void MQTTProtocol_freeClient | ( | Clients * | client | ) |
Free a client structure.
| client | the client data to free |

| void MQTTProtocol_freeMessageList | ( | List * | msgList | ) |
Empty and free up all storage used by a message list.
| msgList | the message list to empty and free |

| int MQTTProtocol_handlePubacks | ( | void * | pack, | |
| int | sock | |||
| ) |
Process an incoming puback packet for a socket.
| pack | pointer to the publish packet | |
| sock | the socket on which the packet was received |

| int MQTTProtocol_handlePubcomps | ( | void * | pack, | |
| int | sock | |||
| ) |
Process an incoming pubcomp packet for a socket.
| pack | pointer to the publish packet | |
| sock | the socket on which the packet was received |

| int MQTTProtocol_handlePublishes | ( | void * | pack, | |
| int | sock | |||
| ) |
Process an incoming publish packet for a socket.
| pack | pointer to the publish packet | |
| sock | the socket on which the packet was received |

| int MQTTProtocol_handlePubrecs | ( | void * | pack, | |
| int | sock | |||
| ) |
Process an incoming pubrec packet for a socket.
| pack | pointer to the publish packet | |
| sock | the socket on which the packet was received |

| int MQTTProtocol_handlePubrels | ( | void * | pack, | |
| int | sock | |||
| ) |
Process an incoming pubrel packet for a socket.
| pack | pointer to the publish packet | |
| sock | the socket on which the packet was received |

| void MQTTProtocol_keepalive | ( | time_t | now | ) |
MQTT protocol keepAlive processing.
Sends PINGREQ packets as required.
| now | current time |

| void MQTTProtocol_removePublication | ( | Publications * | p | ) |
Remove stored message data.
Opposite of storePublication
| p | stored publication to remove |

| static void MQTTProtocol_retries | ( | time_t | now, | |
| Clients * | client, | |||
| int | regardless | |||
| ) | [static] |
MQTT retry processing per client.
| now | current time | |
| client | - the client to which to apply the retry processing | |
| regardless | boolean - retry packets regardless of retry interval (used on reconnect) |

| void MQTTProtocol_retry | ( | time_t | now, | |
| int | doRetry, | |||
| int | regardless | |||
| ) |
MQTT retry protocol and socket pending writes processing.
| now | current time | |
| doRetry | boolean - retries as well as pending writes? | |
| regardless | boolean - retry packets regardless of retry interval (used on reconnect) |

| int MQTTProtocol_startPublish | ( | Clients * | pubclient, | |
| Publish * | publish, | |||
| int | qos, | |||
| int | retained, | |||
| Messages ** | mm | |||
| ) |
Start a new publish exchange.
Store any state necessary and try to send the packet
| pubclient | the client to send the publication to | |
| publish | the publication data | |
| qos | the MQTT QoS to use | |
| retained | boolean - whether to set the MQTT retained flag | |
| mm | - pointer to the message to send |

| static int MQTTProtocol_startPublishCommon | ( | Clients * | pubclient, | |
| Publish * | publish, | |||
| int | qos, | |||
| int | retained | |||
| ) | [static] |
Utility function to start a new publish exchange.
| pubclient | the client to send the publication to | |
| publish | the publication data | |
| qos | the MQTT QoS to use | |
| retained | boolean - whether to set the MQTT retained flag |

| Publications* MQTTProtocol_storePublication | ( | Publish * | publish, | |
| int * | len | |||
| ) |
Store message data for possible retry.
| publish | the publication data | |
| len | returned length of the data stored |

| char* MQTTStrdup | ( | const char * | src | ) |
Duplicate a string, safely, allocating space on the heap.
| src | the source string which characters copy from |

| char* MQTTStrncpy | ( | char * | dest, | |
| const char * | src, | |||
| size_t | dest_size | |||
| ) |
Copy no more than dest_size -1 characters from the string pointed to by src to the array pointed to by dest.
The destination string will always be null-terminated.
| dest | the array which characters copy to | |
| src | the source string which characters copy from | |
| dest_size | the size of the memory pointed to by dest: copy no more than this -1 (allow for null). Must be >= 1 |

1.6.1